manifest文件的作用是声明组件,并指定app的一些权限(permission)和instrumentation(安全控制和测试);manifest作为整个Android应用的入口,其Manifest.xml描述了package中暴露的组件,他们各自的实现类,各种能被处理的数据和启动位置。
Android——Manifest.xml文件的作用
每一个Android的APP都会有一个重要的文件,那就是下面截图中的Manifest文件,这个文件有很多作用,是整个应用的入口,接下来将详细讲解一下
整体介绍:作为整个Android应用的入口,Manifest.xml 描述了package中暴露的组件,他们各自的实现类,各种能被处理的数据和启动位置。除了四大组件的声明,还指定了app的一些权限(permission)和instrumentation(安全控制和测试)。
1. Manifest属性
package:指定应用中java主程序的包名,这个也是整个应用程序默认的名称
还有一些常用的可以加进去
android:versionCode = "1" :版本号
android:versionName="first version" :版本名字
android:installLocation=["auto" | "internalOnly" | "preferExternal"] :几个选项,分别是auto自动选择安装位置,internalOnly必须安装在ROM上,preferExternal优先安装到SD卡上面去
2. permission属性
uses-sdk: 这里是对最小版本sdk的要求
各种需要的permission权限都需要添加到文件中。
3. application属性:声明一个应用程序的组件及其属性(icon,label,permission等等)
基本上大多数在生成project的时候就会默认生成,一般的开发者也不需要多管
android:allowBackup: 允许用户通过adb backup和adb restore来进行对应数据的备份和恢复。
android:label:project的工程名字
android:roundIcon: 现在android新建项目一般有两个图标,一个是icon(普通图标),一个是roundIcon(圆形图标)。
android:supportsRtl: 是否支持right-to-left布局,API 17新添加的功能
android:theme: android应用的风格,可以自定义风格,上面的是默认风格
4. Activity属性
一个最简单的activity声明就是上图所示,一般activity的生命会自动添加
android:launchMode,Activity的加载模式,一共有四种,在我的另一篇文章中讲到过
android:multiprocess:是否允许多进程,默认是false的
android:screenOrientation:显示模式,默认是unspecified(自动调整方向)
这里列举了几个常用的,当然还有很多很多activity属性,这里不再一一赘述
5. intent-filter属性
这个当时被问到这个问题,问我filter有什么属性,常见的属性就这两种,结果面试官说有三种,回来看了一下,真的有三种
action,只有android:name这个属性,常见的也就是上图所示,表示这个activity是程序的入口
category,也只有一个android:name属性,决定应用程序是否显示在程序列表中
data,就是这个东西,貌似可以在这里存一下元数据,当在程序中需要的时候可以获取他的value值。就是下面这个结构
当然intent-filter本身也有一些属性
android:icon
android:label
android:priority=“Integer” 有序广播按声明的优先级来进行,取值范围是-1000到1000,数字越大优先级越高
6. 其他的三大组件,除了BroadcastReceiver可以动态注册外,都需要在manifest.xml中进行注册,这里不再一一赘述各自的属性,贴一张service的图